/**
 * 平台兼容性工具函数
 */

// 检测当前平台
const getPlatformInfo = () => {
  try {
    const systemInfo = wx.getSystemInfoSync();
    return {
      isAndroid: systemInfo.platform === 'android',
      isIOS: systemInfo.platform === 'ios',
      platform: systemInfo.platform,
      system: systemInfo.system,
      version: systemInfo.version,
      SDKVersion: systemInfo.SDKVersion,
      windowWidth: systemInfo.windowWidth,
      windowHeight: systemInfo.windowHeight,
      pixelRatio: systemInfo.pixelRatio
    };
  } catch (e) {
    console.error('获取系统信息失败:', e);
    return {
      isAndroid: false,
      isIOS: false,
      platform: 'unknown'
    };
  }
};

// 获取平台对应的样式类
const getPlatformClass = (className) => {
  const { isAndroid } = getPlatformInfo();
  return isAndroid ? `${className} android-${className}-fix` : className;
};

// 根据平台返回不同的样式对象
const getPlatformStyle = (iosStyle, androidStyle) => {
  const { isAndroid } = getPlatformInfo();
  return isAndroid ? androidStyle : iosStyle;
};

// 修复Android上的一些常见样式问题
const getFixedStyles = () => {
  const { isAndroid } = getPlatformInfo();
  
  if (!isAndroid) return {};
  
  return {
    // 修复文本行高
    text: {
      lineHeight: '1.2'
    },
    // 修复圆角
    borderRadius: {
      overflow: 'hidden'
    },
    // 修复flex gap
    flexGap: {
      marginBottom: '16rpx'
    },
    // 修复transform
    transform: {
      backfaceVisibility: 'hidden',
      webkitBackfaceVisibility: 'hidden',
      willChange: 'transform'
    }
  };
};

// 为Android设备优化元素
const optimizeForAndroid = (element) => {
  const { isAndroid } = getPlatformInfo();
  
  if (!isAndroid) return element;
  
  // 这里可以添加一些处理逻辑，但由于微信小程序的限制，这个函数更多是提供思路
  // 在实际使用中，可能需要在WXML中通过条件渲染来实现
  
  return element;
};

module.exports = {
  getPlatformInfo,
  getPlatformClass,
  getPlatformStyle,
  getFixedStyles,
  optimizeForAndroid
}; 